package forcetower;

import util.Iterador;
import util.ListaEncadeada;

public class Croupier extends Jogador {
	private Baralho baralhoDoJogo = new Baralho();
	private ListaEncadeada pilhaBaralho;

	public Croupier(String nome) {
		super(nome);
	}
	
	public void embaralharCartas() {
		baralhoDoJogo.embaralharCartas();
		pilhaBaralho = baralhoDoJogo.getPilhaBaralho();
	}
	
	public Carta darCarta () {
		return (Carta)pilhaBaralho.removeInicio();
	}
	
	public void querCarta() {
		if (this.mostrarPontos() > 16) {
			this.setQuerCarta(false);
		}
	}
	
	public void mostrarCartasOrdemSaida() {
		System.out.println ("\n\nOrdem de Saida no jogo");
		
		Iterador it = pilhaBaralho.iterador();
		
		while (it.temProximo()) {
			Carta temp = (Carta)it.proximo();
			System.out.println("Naipe: " + temp.getNaipe() + ", Numero: " + temp.getNumero() + ", Figura: " + temp.getFigura());
		}
	}

	public void mostrarCartasOrdenadas() { 
		ListaEncadeada pilhaOrdenada = new ListaEncadeada();
		
		for (int i = 0; i < 52; i++) {
			Carta temp = (Carta)pilhaBaralho.recuperaCarta(i);
			
			if (temp != null) {
				pilhaOrdenada.insereFinal(temp);
			}
		}
		
		System.out.println ("\n\nCartas ordenadas");
		
		Iterador it = pilhaOrdenada.iterador();
		
		while (it.temProximo()) {
			Carta a = (Carta)it.proximo();
			System.out.println("Naipe: " + a.getNaipe() + ", Numero: " + a.getNumero() + ", Figura: " + a.getFigura());
		}
		
	}
	
	public void mostrePrimeiraCarta() {
		ListaEncadeada temp = this.mostrarCartas();
		
		Carta mostrar = (Carta) temp.recupera(0);
		
		System.out.println("Naipe: "+ mostrar.getNaipe() + " Figura: " + mostrar.getFigura() + " Valor: " + mostrar.getValor() + " Numero: " + mostrar.getNumero());
		
	}

}
